import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);

const store = new Vuex.Store({
    // 存储vuex的状态(共享的数据)
    state: {
        num: 10
    },
    // mutations:修改state数据的唯一方法.,同步更新,不可以使用异步
    mutations: {
        changeNum(state) {
            console.log(state);
            state.num++;
        },
        changeNumArg(state, payload) {
            console.log(state);
            state.num += payload;
        }
    },
    // actions:异步操作派发mutaions,异步操作state--通过mutaions
    actions: {
        actChange(context) {
            console.log(context);
            setTimeout(function() {
                context.commit("changeNum");
            }, 1000);
        },
        actChangeArg(context, data) {
            console.log(context);
            setTimeout(function() {
                context.commit("changeNumArg", data);
            }, 1000);
        },
        // 派发actions
        // otherAct(context) {
        //     context.dispatch("actChange")
        // }
    },
    getters: {
        getterNum(state) {
            return '¥' + state.num;
        }
    }
})
export default store;